<?php

declare(strict_types=1);
namespace ImiApp\ApiServer\Api\Controller\order;

use Exception;
use Imi\Db\Db;
use Imi\Server\Http\Route\Annotation\Action;
use Imi\Server\Http\Route\Annotation\Controller;
use Imi\Server\Http\Route\Annotation\Route;
use Psr\Http\Message\ResponseInterface;
use Imi\Aop\Annotation\Inject;
// use Phpben\Imi\Validate\Annotation\Validate;
use Phpben\Imi\Auth\Annotation\Auth;
use Imi\Config;

/**
 * 测试接口订单💻
 * 
 * @Auth(name="token",nologin={"*"})
 * @Controller("/order.test/")
 */
class Test extends OrderBean
{

    //如果$noNeedLogin为空表示所有接口都需要登录才能请求
    //如果$noNeedRight为空表示所有接口都需要验证权限才能请求
    //如果接口已经设置无需登录,那也就无需鉴权了
    //
    // 无需登录的接口,*表示全部
    protected $noNeedLogin = ['*'];
    // 无需鉴权的接口,*表示全部
    protected $noNeedRight = ['*'];

    /**
     * 测试下单购买商品
     *
     * @return void
     * @Action
    */
    public function testBuy1()
    {

    }

    /**
     * 测试运费
     *
     * @param string $goods_ids 商品ids
     * @param integer|null $addr_id 地址ids
     * @return void
     * @Action
     */
    public function testYunfei($goods_ids=null,?int $addr_id=null){
        
        $max = $this->GetGoodsIdsDispatchAmount($goods_ids, $addr_id);
        return $this->success('测试运费',$max);
    }


    /**
     * 测试订单号生成
     *
     * @param integer $store_id 店铺id
     * @param integer $user_id 用户id
     * @param integer $num 数量
     * @return void
     * @Action
     */
    public function testOrderSn(?int $store_id=null,?int $user_id=null,?int $num=500){
        
        for ($i=1; $i <= 100000; $i++) { 
            $arr[] = rand_order(dechex($store_id).'L' , $user_id);
        }

        $生成数量 = sizeof($arr);
        $new = array_unique($arr);
        $去重数量 = sizeof($new);
        $str = '生成数量'.(string)$生成数量.',去重数量'.(string)$去重数量;
  
        return $this->success('测试订单号生成'.$str,$arr);
    }


    /**
     * 测试用户和店铺上级上上级信息
     *
     * @param integer $store_id 店铺id
     * @param integer $user_id 用户id
     * @return void
     * @Action
     */
    public function testPid(?int $store_id=null,?int $user_id=null){
        
        $user = $this->获取用户的上级和上上级($user_id);

        $store = $this->获取店铺的上级和上上级($store_id);
  
        // return $this->success('',['用户'=>$user,'店铺'=>$store]);
        return $this->success('',array_merge($user,$store));
        
    }




}